proc print {name} {
	global arr

	if { [info exists arr($name)] } return
	set arr($name) 1

	puts "// $name {"
	set f [open $name "r"]
	foreach line [split [read $f] "\n"] {
		if { [regexp {^#include\s*"(.*)"} $line match file] } {
			print $file
		} else {
			puts $line
		}
	}
	close $f
	puts "// } $name"
}

print "lambda.hpp"